CRC encoding is a usual error detection code, and various versions of protocols of the Wideband Code Division Multiple Access/Time Division-Synchronous Code Division Multiple Access/Long Term Evolution (WCDMA/TD-SCDMA/LTE) and so on, use various CRC encoding with different lengths so as to ensure the correctness of the information transmission under various transmission formats.
The CRC encoding is a system cyclic code, and encoded data are divided into two parts of the information sequence and check sequence, and the information sequence is at the left, and the check sequence is at the right. The CRC encoding acts as one type of cyclic code, and every time when one bit of its check sequences is cycled, the check sequence may possibly act as the check sequence of a certain specific message sequence.
The current CRC encoding methods are generally based on the following principle:
we assume that the generator polynomial of the cyclic code is g(x), the polynomial of the information to be encoded is u(x) and the degrees of the g(x) and u(x) are r and k−1 respectively, and since the information sequence is at the left and the check sequence is at the right, and coefficients of degrees from the n−1th to the n−kth of the code polynomial C(x) are information bits, and others are check bits, wherein n−k is equal to r. Since the code polynomial C(x) is certainly a multiple of the generator polynomial, thus:
                                                        C              ⁡                              (                x                )                                      =                                                            u                  ⁡                                      (                    x                    )                                                  ⁢                                  x                                      n                    -                    k                                                              +                                                r                  ⁡                                      (                    x                    )                                                  ⁢                0                                                                        mod          ⁢                                          ⁢          g          ⁢                                          ⁢                      (            x            )                          ≡                            (        1.1        )            
wherein a=b|mod(m) denotes that a and b are congruence about the m. In the formula (1.1),
                              g          ⁡                      (            x            )                          =                              x            r                    +                                    g                              r                -                1                                      ⁢                          x                              r                -                1                                              +          …          ⁢                                          +                                    g              1                        ⁢            x            ⁢                                                  ⁢            1                                              (        1.2        )            is the generator polynomial;
                              u          ⁡                      (            x            )                          =                                            u                              k                -                1                                      ⁢                          x                              k                -                1                                              +                                    u                              k                -                2                                      ⁢                          x                              k                -                2                                              +          …          ⁢                                          +                                    u              1                        ⁢            x            ⁢                                                  ⁢                          u              0                                                          (        1.3        )            is the information polynomial, uk-1, uk-2, . . . u1, u0 are information bits, and
                              r          ⁡                      (            x            )                          =                                            r                              n                -                k                -                1                                      ⁢                          x                              n                -                k                -                1                                              +                                    r                              n                -                k                -                2                                      ⁢                          x                              n                -                k                -                2                                              +                                    r              1                        ⁢            x            ⁢                                                  ⁢                          r              0                                                          (        1.4        )            is the check polynomial, and the corresponding coefficients are the check bits of the input bit stream after the CRC encoding, and it can be obtained by the formula (1.1)
                                                        r              ⁡                              (                x                )                                      =                                                            C                  ⁡                                      (                    x                    )                                                  +                                                      u                    ⁡                                          (                      x                      )                                                        ⁢                                      x                                          n                      -                      k                                                                                  ≡                                                u                  ⁡                                      (                    x                    )                                                  ⁢                                  x                                      n                    -                    k                                                                                                          mod          ⁢                                          ⁢                      g            ⁡                          (              x              )                                                          (        1.5        )            it can be seen from the formula (1.5) that calculating the CRC check bits can be implemented through the way of modulo g(x) division, and the current CRC encoders are all basically implemented based on this way.
The division circuit generally uses a feedback shift register to be implemented, and FIG. 1 is a schematic diagram of the structure of the CRC encoder which implements encoding by using the r-stage shift register in the related art, wherein Dr-1 is the shift register, gr-1 is the coefficient of the generator polynomial g(x), and the Reg is the register in FIG. 1. The CRC encoder using this structure is only able to process 1 input bit in each clock, and for the large scale system, the overhead of this circuit system is large, and the system operation efficiency is low.